// 列表转树形结构
export function listToTree(arr, id) {
  // arr：原始数组，id部门的id
  const list = []
  // 处理的过程
  // 循环数据，获取数组中对象的pid和传入的id进行比较，如果相等则说明该部门是id的子部门
  // （如果id值为空字符串 说明该部门为一级部门）
  arr.forEach(item => {
    if (item.pid === id) {
      list.push(item)
      // 根据二级部门的pid和一级部门的id来找父子部门关系
      // 如果二级部门的pid和一级部门的id一样的话，则表示改二级部门为一级部门的子部门

      // 第一种写法  递归写法，好处是不管有几个子部门都能渲染出来
      item.children = listToTree(arr, item.id)

      // 第二种写法，缺点是如果还有子部门还要继续遍历判断
      // item.children = []
      // arr.forEach(val => {
      //   if (val.pid === item.id) {
      //     item.children.push(val)
      //   }
      // })
    }
  })
  // return 处理后的树形结构数据
  return list
}
